mod common;
mod executor;
mod do_async;
mod do_yield;

use std::collections::VecDeque;
use std::io::{BufRead, Read, Write};
use std::task:: Poll;
use crate::executor::Executor;
use my_lib::block_on;
use crate::do_yield::yield_now;

async fn asy_func(x: i32)->i32 {
    yield_now().await;
    yield_now().await;
    println!("{x}");
    x
}
async fn my_main()->isize{
    let func1 = asy_func(10);
    let func2 = asy_func(20);
    block_on!(func1,func2);
    30
}
fn main() {
    let main_future = my_main();

    block_on!(main_future);



    println!("end");
}


